www.gusucode.com > pluck PHP多国语言简洁CMS系统 v4.7.4PHP源码程序 > pluck PHP多国语言简洁CMS系统 v4.7.4/PluckCMS4.7.4/PluckCMS4.7.4/install.php

    <?php
/*
 * This file is part of pluck, the easy content management system
 * Copyright (c) pluck team
 * http://www.pluck-cms.org

 * Pluck is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * See docs/COPYING for the complete license.
*/

//First, define that we are in pluck.
define('IN_PLUCK', true);

//Then start session support.
session_start();

//Include security-enhancements.
require_once ('data/inc/security.php');
//Include functions.
require_once 'data/inc/functions.modules.php';
require_once 'data/inc/functions.all.php';
require_once 'data/inc/functions.admin.php';
//Include Translation data.
require_once 'data/inc/variables.all.php';

//Check if we've installed pluck.
if (file_exists('data/settings/install.dat')) {
	$titelkop = $lang['install']['title'];
	include_once 'data/inc/header2.php';
	redirect('login.php', 3);
	show_error($lang['install']['already'], 2);
	include_once 'data/inc/footer.php';
}

//If we didn't:
else {

//Select language depending on browser settings
$langcode = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '';
$langcode = (!empty($langcode)) ? explode(';', $langcode) : $langcode;
$langcode = (!empty($langcode['0'])) ? explode(',', $langcode['0']) : $langcode;
$langcode = (!empty($langcode['0'])) ? explode('-', $langcode['0']) : $langcode;
if ($langcode['0'].'.php' != $langpref && is_file('data/inc/lang/'.$langcode['0'].'.php')) {
	$langpref = $langcode['0'].'.php';
	require_once ('data/inc/lang/'.$langpref);
}

	if (!isset($_GET['action'])) {
		$titelkop = $lang['install']['title'];
		include_once 'data/inc/header2.php';

		//Introduction text.
		?>
		<span class="kop2"><?php echo $lang['install']['title']; ?></span>
		<p>
			<strong><?php echo $lang['install']['welcome']; ?></strong>
		</p>
		<?php
		//Show installation button.
		?>
		<a href="?action=step1"><?php echo $lang['install']['start']; ?></a>
		<?php
		include_once ('data/inc/footer.php');
	}

	//Installation Step 1: CHMOD.
	elseif (isset($_GET['action']) && $_GET['action'] == 'step1') {
		$titelkop = $lang['install']['title'];
		include_once ('data/inc/header2.php');
		?>
		<span class="kop2"><?php echo $lang['install']['title']; ?> :: <?php echo $lang['install']['step_1']; ?></span>
		<p>
			<strong><?php echo $lang['install']['writable']; ?></strong>
		</p>
		<?php
			//Writable checks.
			foreach (array('images', 'files', 'data/modules', 'data/trash', 'data/themes', 'data/themes/default', 'data/themes/oldstyle', 'data/settings', 'data/settings/langpref.php') as $check)
				check_writable($check);
			unset($check);
		?>
		<p>
			<a href="javascript:refresh()"><?php echo $lang['install']['refresh']; ?></a>
		</p>
		<a href="?action=step2">
			<strong><?php echo $lang['install']['proceed']; ?></strong>
		</a>
		<?php
		include_once 'data/inc/footer.php';
	}

	//Installation Step 2: General Info.
	elseif (isset($_GET['action']) && $_GET['action'] == 'step2') {
		$titelkop = $lang['install']['title'];
		include_once 'data/inc/header2.php';

		if (isset($_POST['save'])) {
			//Check sitetitle.
			$trim_title = trim($cont1);
			if (empty($trim_title))
				$error['title'] = show_error($lang['settings']['fill_name'], 1, true);

			//Check the email.
			if (!preg_match('/^.+@.+\..{2,4}$/', $cont2))
				$error['email'] = show_error($lang['settings']['email_invalid'], 1, true);

			//Check the passwords.
			if (empty($cont4))
				$error['pass'] = show_error($lang['changepass']['empty'], 1, true);

			elseif ($cont4 != $cont5)
				$error['pass'] = show_error($lang['changepass']['different'], 1, true);

			if (!isset($error)) {
				//Save prefered language.
				save_language($cont3);

				//Save options.
				save_options($cont1, $cont2, 'yes');

				//Save password.
				save_password($cont4);

				//Save theme.
				save_theme('default');

				//Make some dirs for the trashcan, modules and pages.
				foreach (array('data/trash/pages', 'data/trash/images', 'data/trash/files', 'data/settings/modules', PAGE_DIR) as $dir) {
					if (!is_dir($dir)) mkdir($dir);
						chmod($dir, 0777);
				}
				unset($dir);

				redirect('?action=step3', 0);
				include_once 'data/inc/footer.php';
				exit;
			}
		}
		?>
		<span class="kop2"><?php echo $lang['install']['title']; ?> :: <?php echo $lang['install']['step_2']; ?></span>
		<p>
			<strong><?php echo $lang['install']['general_info']; ?></strong>
		</p>
		<form method="post" action="">
			<p>
				<label class="kop2" for="cont1"><?php echo $lang['general']['title'] ?></label>
				<span class="kop4"><?php echo $lang['settings']['choose_title'] ?></span>
				<br />
				<input name="cont1" id="cont1" type="text" value="<?php if (isset($cont1)) echo htmlspecialchars($cont1); ?>" />
				<?php if (isset($error['title'])) echo $error['title']; ?>
			</p>
			<p>
				<label class="kop2" for="cont2"><?php echo $lang['settings']['email'] ?></label>
				<span class="kop4"><?php echo $lang['settings']['email_descr'] ?></span>
				<br />
				<input name="cont2" id="cont2" type="text" value="<?php if (isset($cont2)) echo htmlspecialchars($cont2); ?>" />
				<?php if (isset($error['email'])) echo $error['email']; ?>
			</p>
			<p>
				<label class="kop2" for="cont3"><?php echo $lang['language']['title']; ?></label>
				<select name="cont3" id="cont3">
					<?php read_lang_files($langpref); ?>
				</select>
			</p>
			<p>
				<label class="kop2" for="cont4"><?php echo $lang['login']['password']; ?></label>
				<input name="cont4" id="cont4" type="password" />
			</p>
			<p>
				<label class="kop2" for="cont5"><?php echo $lang['changepass']['repeat']; ?></label>
				<input name="cont5" id="cont5" type="password" />
				<?php if (isset($error['pass'])) echo $error['pass']; ?>
			</p>
			<?php show_common_submits('?action=step1'); ?>
		</form>
		<?php
		include_once 'data/inc/footer.php';
	}

	//Installation Step 3: Homepage.
	elseif (isset($_GET['action']) && $_GET['action'] == 'step3') {
		$titelkop = $lang['install']['title'];
		include_once ('data/inc/header2.php');

		//Save the homepage.
		if (isset($_POST['save'])) {
			save_page($cont1, $cont2, 'no', '');
			redirect('?action=step4', 0);
			include_once ('data/inc/footer.php');
			exit;
		}
		?>
		<span class="kop2"><?php echo $lang['install']['title']; ?> :: <?php echo $lang['install']['step_3']; ?></span>
		<p>
			<strong><?php echo $lang['install']['homepage']; ?></strong>
		</p>
		<form method="post" action="">
			<p>
				<label class="kop2" for="cont1"><?php echo $lang['general']['title']; ?></label>
				<input name="cont1" id="cont1" type="text" />
			</p>
			<p>
				<label class="kop2" for="cont2"><?php echo $lang['general']['contents']; ?></label>
				<textarea name="cont2" id="content-form" class="tinymce" cols="70" rows="20"></textarea>
			</p>
			<?php show_common_submits('?action=step3'); ?>
		</form>
		<?php
		include_once 'data/inc/footer.php';
	}

	//Installation Step 4: Done.
	elseif (isset($_GET['action']) && $_GET['action'] == 'step4') {
		install_done();

		//Set pagetitle
		$titelkop = $lang['install']['title'];
		include_once ('data/inc/header2.php');
		?>
			<p>
				<strong><?php echo $lang['install']['success']; ?></strong>
			</p>
		<?php
		showmenudiv($lang['start']['website'], $lang['start']['result'], 'data/image/website.png', 'index.php');
		showmenudiv($lang['general']['admin_center'], $lang['install']['manage'], 'data/image/password.png', 'login.php');

		include_once 'data/inc/footer.php';
	}
}
?>